---
title: Resolve a topic
---

import {Steps, TabItem, Tabs} from "@astrojs/starlight/components";

import FlattenedSteps from "../../components/FlattenedSteps.astro";
import KeyboardTip from "../../components/KeyboardTip.astro";
import ZulipTip from "../../components/ZulipTip.astro";
import ConfigureResolvedNoticesMarkedAsRead from "../include/_ConfigureResolvedNoticesMarkedAsRead.mdx";
import FilterResolvedLeftSidebar from "../include/_FilterResolvedLeftSidebar.mdx";
import TopicActions from "../include/_TopicActions.mdx";
import TopicLongPressMenu from "../include/_TopicLongPressMenu.mdx";
import TopicLongPressMenuTip from "../include/_TopicLongPressMenuTip.mdx";

import CheckIcon from "~icons/zulip-icon/check";
import MoreVerticalIcon from "~icons/zulip-icon/more-vertical";
import SearchIcon from "~icons/zulip-icon/search";

Zulip's [topics](/help/introduction-to-topics) are very
helpful for customer support, answering questions, investigating
issues and production errors, as well as other workflows.
Resolving topics makes it easy to track the status of each question,
investigation, or notification.

Marking a topic as resolved:

* Puts a ✔ at the beginning of the topic name, e.g., `example topic`
  becomes `✔ example topic`.
* Triggers an automated notice from Notification Bot indicating that
  you resolved the topic. Users can
  [configure](/help/marking-messages-as-read#configure-whether-resolved-topic-notices-are-marked-as-read)
  whether these notices are automatically marked as read.
* Changes whether the topic appears when using the `is:resolved` and
  `-is:resolved` [search filters](/help/search-for-messages#search-filters).

Marking a topic as unresolved removes the ✔ and also triggers an
automated notice from Notification Bot.

It's often helpful to define a policy for when to resolve topics that
fits how topics are used in a given channel. Here are some common
approaches for deciding when to mark a topic as resolved:

* **Support**: When the support interaction is complete. Resolving
  topics is particularly useful for internal support teams that might
  not need a dedicated support ticket tracker.
* **Issues, errors and production incidents**: When investigation or
  incident response is complete, and any follow-up work has been
  transferred to the appropriate tracker.
* **Workflow management**: When the work described in the topic is
  complete and any follow-ups have been transcribed.
* **Answering questions**: When the question has been fully answered,
  and follow-ups would be best discussed in a new topic.

Users can resolve or unresolve a topic if they have
[permission](/help/restrict-resolving-topics) to do so.

## Mark a topic as resolved

<Tabs>
  <TabItem label="Desktop/Web">
    <FlattenedSteps>
      <TopicActions />

      1. Select **Mark as resolved**.
    </FlattenedSteps>

    <ZulipTip>
      You can also click on the **mark as resolved** (<CheckIcon />)
      icon in the message recipient bar to mark an unresolved topic as resolved.
    </ZulipTip>
  </TabItem>

  <TabItem label="Mobile">
    <FlattenedSteps>
      <TopicLongPressMenu />

      1. Tap **Mark as resolved**.
    </FlattenedSteps>

    <TopicLongPressMenuTip />
  </TabItem>
</Tabs>

## Mark a topic as unresolved

Marking a topic as unresolved normally triggers an automated notice from
Notification Bot. However, unresolving a topic right after you resolved it
removes the original notice instead. This is helpful if you resolved a topic by
accident.

<Tabs>
  <TabItem label="Desktop/Web">
    <FlattenedSteps>
      <TopicActions />

      1. Select **Mark as unresolved**.
    </FlattenedSteps>

    <ZulipTip>
      You can also click on the **ellipsis** (<MoreVerticalIcon />)
      in the message recipient bar, and select the **Mark as unresolved** option.
    </ZulipTip>
  </TabItem>

  <TabItem label="Mobile">
    <FlattenedSteps>
      <TopicLongPressMenu />

      1. Tap **Mark as unresolved**.
    </FlattenedSteps>

    <TopicLongPressMenuTip />
  </TabItem>
</Tabs>

## Search for messages in unresolved topics

<Tabs>
  <TabItem label="Desktop/Web">
    <Steps>
      1. Click the **search** (<SearchIcon />) icon in the top bar to open the search box.
      1. Type `-is:resolved`, or start typing and select **Exclude topics marked as
         resolved** from the typeahead.
      1. *(optional)* Enter additional search terms or
         [filters](/help/search-for-messages).
      1. Press <kbd>Enter</kbd>.
    </Steps>

    <KeyboardTip>
      You can also use the <kbd>/</kbd> or <kbd>Ctrl</kbd> + <kbd>K</kbd>
      keyboard shortcut to start searching messages.
    </KeyboardTip>
  </TabItem>
</Tabs>

<ZulipTip>
  To get a feed of unread messages in all unresolved topics, search for
  `is:unresolved is:unread`.
</ZulipTip>

## Search for messages in resolved topics

<Tabs>
  <TabItem label="Desktop/Web">
    <Steps>
      1. Click the **search** (<SearchIcon />) icon in the top bar to open the search box.
      1. Type `is:resolved`, or start typing and select **Topics marked as resolved**
         from the typeahead.
      1. *(optional)* Enter additional search terms or
         [filters](/help/search-for-messages).
      1. Press <kbd>Enter</kbd>.
    </Steps>

    <KeyboardTip>
      You can also use the <kbd>/</kbd> or <kbd>Ctrl</kbd> + <kbd>K</kbd>
      keyboard shortcut to start searching messages.
    </KeyboardTip>
  </TabItem>
</Tabs>

## Filter by whether topics are resolved

<FilterResolvedLeftSidebar />

## Configure whether resolved topic notices are marked as read

<ConfigureResolvedNoticesMarkedAsRead />

## Sending messages to resolved topics

You can send messages to a resolved topic, which is handy for *"thank you"*
messages, or to discuss whether a topic was incorrectly marked as resolved.

When a topic is resolved or unresolved, users' compose boxes and message views
automatically update to show the topic's current state. This helps make sure
everyone sends messages to the correct place.

[Integrations](/help/integrations-overview) will still send messages to the
original topic after a topic is resolved. This is useful for alerting
integrations, where a repeating alert might have a different cause. As usual,
you can mark the topic resolved once you've investigated the situation.

## Related articles

* [Rename a topic](/help/rename-a-topic)
* [Move content to another topic](/help/move-content-to-another-topic)
* [Restrict topic editing](/help/restrict-moving-messages)
* [API documentation for resolving topics](/api/update-message)
